//////////////////////////////////////////////////////////////////////////
#pragma once


//////////////////////////////////////////////////////////////////////////
#include <RocketLua/RocketLua.hpp>


namespace Rocket
{
	namespace Core
	{
		namespace Lua
		{
			//////////////////////////////////////////////////////////////////////////
			class ROCKETLUA_EXPORT LuaDocument : public Rocket::Core::ElementDocument
			{
			public:
				LuaDocument( lua_State* state, const String& tag );
				virtual ~LuaDocument();

				virtual void				LoadScript( Stream* stream, const String& sourceName ) override;

				static int					luaGetElementById( lua_State*, ElementDocument* );

				static void					Register( lua_State* );

			private:
				lua_State*		mpState;
			};
		}
	}
}
